package com.jdd.modules.parking.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jdd.common.util.excel.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

/**
 * @Description: 车辆车场信息
 * @Author: jdd
 * @Date: 2021-02-20
 * @Version: V1.0
 */
@Data
@TableName("park_car_out_log")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "park_car_out_log对象", description = "车辆车场信息")
public class ParkCarOutLog {

    /**
     * 主键
     */
    @TableId(type = IdType.ID_WORKER_STR)
    @ApiModelProperty(value = "主键")
    private String id;
    /**
     * 车场编号
     */
    @Excel(name = "车场编号", width = 15)
    @ApiModelProperty(value = "车场编号")
    private String parkCode;
    /**
     * 停车场名称
     */
    @Excel(name = "停车场名称", width = 15)
    @ApiModelProperty(value = "停车场名称")
    private String parkName;
    /**
     * 车牌号
     */
    @Excel(name = "车牌号", width = 15)
    @ApiModelProperty(value = "车牌号")
    private String plateNo;
    /**
     * 设备序列号，设备唯一
     */
    @ApiModelProperty(value = "设备序列号，设备唯一")
    private String serialNo;
    /**
     * 出场车辆类型(0,无牌车，1,有牌车)
     */
    @Excel(name = "车辆类型", width = 15)
    @ApiModelProperty(value = "出场车辆类型(0,无牌车，1,有牌车)")
    private String carType;
    /**
     * 车辆性质(0:临时车,1:月租车,2储值车，3军警车）
     */
    @Excel(name = "车辆性质", width = 15)
    @ApiModelProperty(value = "车辆性质(0:临时车,1:月租车,2储值车，3军警车）")
    private String carNature;
    /**
     * 车辆出场时间
     */
    @Excel(name = "车辆出场时间", width = 15)
    @ApiModelProperty(value = "车辆出场时间")
    private String carOutTime;
    /**
     * 车辆入场ID
     */
    @ApiModelProperty(value = "车辆入场ID")
    private String carEnterId;
    /**
     * 出口名称
     */
    @Excel(name = "出口名称", width = 15)
    @ApiModelProperty(value = "出口名称")
    private String armName;
    /**
     * 抓拍图片地址
     */
    @Excel(name = "抓拍图片地址", width = 15)
    @ApiModelProperty(value = "抓拍图片地址")
    private String imgPath;
    /**
     * 阿里云oss图片地址
     */
    @Excel(name = "阿里云oss图片地址", width = 15)
    @ApiModelProperty(value = "阿里云oss图片地址")
    private String ossImgPath;
    /**
     * 放行备注
     */
    @Excel(name = "放行备注", width = 15)
    @ApiModelProperty(value = "放行备注")
    private String remark;
    /**
     * 设备ip地址
     */
    @ApiModelProperty(value = "设备ip地址")
    private String ipAddr;
    /**
     * 创建时间
     */
    @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * 岗亭人员账户
     */
    @Excel(name = "岗亭人员账户", width = 15)
    @ApiModelProperty(value = "岗亭人员账户")
    private String sysUserName;
    /**
     * 工作站字段
     */
    @Excel(name = "工作站字段", width = 15)
    @ApiModelProperty(value = "工作站字段")
    private String workName;
    /**
     * 是否成功同步到云端 N:失败 Y:成功
     */
    @ApiModelProperty(value = "是否成功同步到云端 N:失败 Y:成功")
    private String synchronousStatus;
    /**
     * 出场类型 1 : 正常出场 2：手动出场 3：补录场内
     */
    @ApiModelProperty(value = "出场类型 1 : 正常出场 2：手动出场 3：补录场内")
    private Integer outerType;

    @ApiModelProperty(value = "车牌图片地址")
    private String plateNoImgPath;

    @TableField(exist = false)
    private String uploudOssImg;

    @TableField(exist = false)
    @ApiModelProperty(value = "车辆性质")
    private java.lang.String carTypeNo;

    /**
     * 全免券标识
     */
    @TableField(exist = false)
    private boolean freeAllCoupon;

    /**
     * 车辆类型名称
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "车辆类型名称")
    private String carTypeName;
}
